package com.demo.blog;

import com.demo.common.model.Blog;
import com.demo.common.model.Goods;
import com.demo.common.model.JsonResult;
import com.jfinal.aop.Before;
import com.jfinal.core.Controller;

/**
 * 本 demo 仅表达最为粗浅的 jfinal 用法，更为有价值的实用的企业级用法
 * 详见 JFinal 俱乐部: http://jfinal.com/club
 * 
 * BlogController
 * 所有 sql 与业务逻辑写在 Model 或 Service 中，不要写在 Controller 中，养成好习惯，有利于大型项目的开发与维护
 */
@Before(BlogInterceptor.class)
public class BlogController extends Controller {
	
	static BlogService service = new BlogService();
	static GoodsService service1 = new GoodsService();
	
	public void index() {
		setAttr("blogPage", service.paginate(getParaToInt(0, 1), 10));
		render("blog.html");
	}
	
	public void add() {
	}
	
	/**
	 * save 与 update 的业务逻辑在实际应用中也应该放在 serivce 之中，
	 * 并要对数据进正确性进行验证，在此仅为了偷懒
	 */
	@Before(BlogValidator.class)
	public void save() {
		getModel(Blog.class).save();
		redirect("/blog");
	}
	
	public void edit() {
		setAttr("blog", service.findById(getParaToInt()));
	}
	
	/**
	 * save 与 update 的业务逻辑在实际应用中也应该放在 serivce 之中，
	 * 并要对数据进正确性进行验证，在此仅为了偷懒
	 */
	@Before(BlogValidator.class)
	public void update() {
		getModel(Blog.class).update();
		redirect("/blog");
	}
	
	public void delete() {
		service.deleteById(getParaToInt());
		redirect("/blog");
	}
	
	/**
	 * @see 包裹goods的controller
	 */
	public void addObject(){
		//对业务数据进行判断
		Goods goods = getModel(Goods.class);
		if((goods.getCode()==null||goods.getCode().length()<=0)&&(goods.getWeight()==null||goods.getWeight().equals(""))){
//			renderJson("{\"state\":\"0\",\"message\":\"请输入正确的信息！\"}");
			renderJson(new JsonResult());
		}
		
		boolean flag = getModel(Goods.class).setWeightime(new java.sql.Timestamp(new java.util.Date().getTime())).save();
		
		if(flag){
//			renderJson("{\"state\":\"1\",\"message\":\"扫描成功！\"}");
			renderJson(new JsonResult());
		}else{
//			renderJson("{\"state\":\"0\",\"message\":\"扫描失败，重新扫描！\"}");
			renderJson(new JsonResult());
		}
		//render("success.html");
	}
	/**
	 * @see 根据特定条件查询到包裹数据
	 */
	public void doFindObjects() {
		System.out.println("111"+getPara("orderMode"));
		System.out.println("123"+getPara("code"));
		System.out.println("321"+getPara("pageNumber"));
		renderJson(new JsonResult(service1.findObjects(getPara("code"),getParaToInt("pageNumber"), 10,getPara("orderMode"))));
	}
	
	/**
	 * @see 根据id查询数据
	 */
	public void doFindById(){
		System.out.println(getParaToInt("id"));
		renderJson(new JsonResult(service1.findById(getParaToInt("id"))));
	}
	
	/**
	 * @see 根据id更新数据
	 */
	public void doUpdateById(){
		Goods goods = getModel(Goods.class);
		service1.updateById(goods);
		System.out.println(getModel(Goods.class).toString());
		renderJson(new JsonResult());
	}
}



